﻿Imports System.Windows.Forms
Imports Testeitor.Entidades
Imports Testeitor.DAO

Public Class DialogSuite
    Dim _operacion As Util.Operacion
    Dim _suite As SuiteEntity

    Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click

        If validarDatos() Then
            Dim dao As New SuiteDAO
            Select Case _operacion
                Case Util.Operacion.GUARDAR
                    _suite = New SuiteEntity
                    cargarEntidad()
                    dao.Insertar(_suite)
                    Util.mensaje("La Suite se ha guardado correctamente!", "Suite Guardado")
                Case Util.Operacion.MODIFICAR
                    cargarEntidad()
                    dao.Actualizar(_suite)
                    Util.mensaje("La Suite se ha modificado correctamente!", "Suite Guardado")
                Case Util.Operacion.ELIMINAR
                    dao.Eliminar(_suite.Id)
                    Util.mensaje("La Suite se ha eliminado correctamente!", "Suite Guardado")
            End Select

            Me.DialogResult = System.Windows.Forms.DialogResult.OK
            Me.Close()
        Else
            MessageBox.Show("El formato de los Datos ingresados es incorrecto", "Datos Incorrectos", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If
    End Sub

    Private Function validarDatos() As Boolean
        Dim valor As Boolean
        valor = True

        If True Then
            valor = False
        End If

        Return valor
    End Function

    Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
        Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
        Me.Close()
    End Sub

    Public Sub cargarDatos(ByVal entidad As EntityBase)
        _suite = DirectCast(entidad, SuiteEntity)

        txtTag.Text = _suite.Tags
        txtDetalle.Text = _suite.Detalle
        dtpFechaCreacion.Text = _suite.FechaCreacion.ToString()
        cmbEstado.SelectedValue = _suite.Estado
        Util.CargarCheckedList(chkCasosPrueba, _suite.CasosDePrueba, "Titulo")

        If _operacion.Equals(Util.Operacion.ELIMINAR) Then
            habilitarControles(False)
        End If
    End Sub

    Private Sub habilitarControles(ByVal valor As Boolean)
        txtTag.Enabled = valor
        txtDetalle.Enabled = valor
        dtpFechaCreacion.Enabled = valor
        cmbEstado.Enabled = valor
        chkCasosPrueba.Enabled = valor
    End Sub

    Private Sub cargarEntidad()
        _suite.Tags = txtTag.Text.Trim()
        _suite.Detalle = txtDetalle.Text
        _suite.FechaCreacion = Convert.ToDateTime(dtpFechaCreacion.Text)
        _suite.Estado = cmbEstado.SelectedValue
        _suite.CasosDePrueba = ObtenerCasosDePrueba()
    End Sub

    Private Function ObtenerCasosDePrueba() As List(Of TestEntity)
        Dim lista As New List(Of TestEntity)

        For Each Item As TestEntity In chkCasosPrueba.CheckedItems
            lista.Add(Item)
        Next

        Return lista
    End Function

    Private Sub DialogSuite_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        cargarComboEstado()
    End Sub

    Private Sub cargarComboEstado()
        Dim dao As New EstadoDAO
        Util.cargarComboEntity(cmbEstado, dao.SeleccionarTodas)
    End Sub
End Class
